1. Field of the Invention
In general, the present invention relates to a method, system and program product for resolving prerequisites for client devices in an Open Service Gateway Initiative (OSGi) framework. Specifically, the present invention allows OSGi bundle prerequisites to be resolved while making efficient use of low bandwidth and/or high costs connections.
2. Related Art
As computer networking has become more advanced, a standard known as the Open Service Gateway Initiative (OSGi) has been developed. The OSGi is an industry plan to provide a standard way to deliver managed services to devices and local networks. With such a standard, home users could, for example, change the setting on their thermostat from a remote location (e.g., the workplace). In general, the OSGi provides a good framework for developing application components. Under the OSGi, a basic component is known as an OSGi bundle. An OSGi application can be made up of combinations/suites of bundles that might share common functionality. To this extent, the OSGi allows developers to define the dependencies between the bundles such as the packages and services required by the bundles. In a typical implementation, an OSGi architecture will include, among other components, a server and one or more client devices. Each client device will have an OSGi environment within which OSGi applications are deployed. Using a management program on the server, the functions of the OSGi applications can be controlled.
Unfortunately, as convenient as the OSGi framework can be, it currently fails to provide an efficient way to resolve prerequisites for OSGi bundles that are to be loaded on a client device. Specifically, a particular OSGi bundle might require that the client device have certain services, packages or computer resources (e.g., threads, RAM, etc.) to be properly run. If the client device fails to have the necessary prerequisites, the resource shortages should be addressed, or the OSGi bundle should not be loaded. The previous attempts at providing prerequisite resolution involved information flow solely from the client device to the server. Specifically, the client device would identify the OSGi bundles it had loaded thereon (e.g., by names and versions) to the server. The server would then use that information to look up the prerequisites in a repository or the like, and attempt to build a complete picture of the client device. Several disadvantages are posed with such an embodiment. First, since a single client device could have numerous OSGi bundles, communicating information about each one to the server is a large waste of bandwidth. Moreover, having the server receive the information and determine the prerequisites requires the server to be “all knowing” about the client device. This would disable the support of multiple management domains on a single client device. It would also break the process as soon as software appears on the client device that is not in the server's repository.
In view of the foregoing, there exists a need for a method, system and program product for resolving prerequisites for client devices in an OSGi framework. Specifically, a need exists whereby prerequisite resolution can occur while making efficient use of low bandwidth and/or high cost connections between the server and a client device.